home *** CD-ROM | disk | FTP | other *** search
- Path: news.cs.ucla.edu!twinsun!not-for-mail
- From: eggert@twinsun.com (Paul Eggert)
- Newsgroups: comp.std.c
- Subject: brief summary of Technical Corrigendum 2
- Date: 15 Jan 1996 22:26:05 -0800
- Organization: Twin Sun Inc, El Segundo, CA, USA
- Message-ID: <4dfgdt$se6@der.twinsun.com>
- References: <4d554m$q4b@news1.halcyon.com>
- NNTP-Posting-Host: der.twinsun.com
-
- William E. Aitken writes:
-
- > What is the current status of TC2?
-
- Publication of Technical Corrigendum 2 is ``imminent'', according to
- Douglas A. Gwyn, ``C Standards Update'', _The Journal of C Language
- Translation_ *6*, 3 (March 1995), 150-156. Gwyn's article also
- contains a summary of what are expected to be the normative changes of TC2.
- Briefly:
-
- * There is a new kind of storage duration, ``allocated''. It is neither
- static nor dynamic. malloc'ed storage has allocated storage duration.
-
- * The following are now locale-specific, not implementation-defined:
- - shift states used for the encoding of multibyte characters
- - character sets for isalnum, isalpha, iscntrl, islower, isprint, isupper
- - the interpretation of setlocale's second argument (if neither "C" nor "")
- - additional subject sequence forms for strtod, strtol, strtoul
- - strerror's returned string
-
- * va_start and va_end must be invoked in corresponding pairs,
- and the pairs cannot nest.
-
- * An incomplete type in one translation unit is compatible with a
- complete type in another unit. (The wording in Gwyn's article on this point
- was a little unclear; I hope WG14 fixed it before it became official.)
-
- * Freestanding environments can have reserved external identifiers.
-
- * The implementation-defined integer type compatible with an enumerated type
- must be capable of representing the enumeration members' values.
-
- * An enumerated type is complete at the } ending the enumeration.
-
- * String and wide string literals need not be distinct even if not identical,
- so long as their elements have appropriate values.
-
- * Calling a library function like printf with an unexpected type
- (after promotion) yields undefined behavior.
-
- * `return X' in `main' is not precisely equivalent to `exit(X)',
- since the dynamic storage of `main' vanishes as `main' returns.
-
- There are some other minor wording changes.
-